package cn.ahaoweb.drule.core.configuration;

/**
 * @Name: RuleServiceConfiguration
 * @Description:
 * @Author: wangzhonghao
 * @Date: 2025/2/12 16:27
 */
public class RuleServiceConfiguration {

    public static final String TRUE = "true";
    public static final String FALSE = "false";

    public enum RULE_CONTENT_CACHE implements Option{

        OPEN(TRUE),
        // 如果不保存规则文件内容缓存，请注意如果需要二次使用规则文件内容，将会出现异常。
        CLOSE(FALSE)
        ;

        public static final String PROPERTY_NAME = "rule.content.cache";

        private String value;

        RULE_CONTENT_CACHE(String value) {
            this.value = value;
        }

        @Override
        public String getPropertyName() {
            return PROPERTY_NAME;
        }

        @Override
        public String value() {
            return value;
        }

    }

    public enum EXECUTE_MODE implements Option {

        // 会打印执行过程中调试信息
        DEBUG("debug"),
        // 统计执行后的入参，出参 和 命中规则的信息
        INFO("info"),
        // 单纯的执行模式，不统计任何执行过程的信息
        EXECUTE("execute")
        ;

        public static final String PROPERTY_NAME = "execute.mode";

        private String value;

        EXECUTE_MODE(String value) {
            this.value = value;
        }

        @Override
        public String getPropertyName() {
            return PROPERTY_NAME;
        }

        @Override
        public String value() {
            return value;
        }

    }

}
